package cn.xioabai.common.enums;

import org.apache.commons.lang3.StringUtils;

/**
 * 系统类型
 *
 * @Author yangdaji
 * @Date 2023/2/21 0021
 * @PackageName cn.xiaobai.enums
 * @ClassName OsTypeEnum
 */
public enum OsTypeEnum {

    WINDOWS("Windows", "pc 端"),
    LINUX("Linux", "linux 端");

    private String osName;
    private String desc;

    public String getOsName() {
        return osName;
    }

    public String getDesc() {
        return desc;
    }

    OsTypeEnum(String osName, String desc) {
        this.osName = osName;
        this.desc = desc;
    }

    /**
     * 获取系统类型, 对比相同的名称
     *
     * @param type
     * @return
     */
    public static OsTypeEnum getItem(String type) {
        for (OsTypeEnum value : values()) {
            if (value.getOsName().equals(type.trim())) {
                return value;
            }
        }
        return null;
    }

    /**
     * 匹配系统类型, 模糊比较名称
     *
     * @param type
     * @return
     */
    public static OsTypeEnum matchType(String type) {
        for (OsTypeEnum value : values()) {
            String typeTrim = type.trim();
            if (StringUtils.isNoneBlank(typeTrim)) {
                if (typeTrim.startsWith(value.getOsName())||
                        typeTrim.equalsIgnoreCase(value.getOsName())) {
                    return value;
                }
            }
        }
        return null;
    }
}
